const db = wx.cloud.database()
Page({
  /**
   * 页面的初始数据
   */
  data: {
    // 用户信息
    userInfo: '',
    // 判断是否有用户信息
    hasUserInfo: false,
    // 判断是否有getUserProfile这个函数
    canIUseGetUserProfile: false,
    // 申请状态。null表示未发起申请，success表示申请通过，fail表示申请失败，loading表示等待审核
    applicationStatu: '',
    // 是否是管理员（默认是false）,只有管理员可以看到审核接单申请的功能
    isManager: false
  },
  // 跳转到个人中心
  updataUserInfo() {
    if (this.data.hasUserInfo) {
      wx.navigateTo({
        url: '../updateUserInfo/updataUserInfo',
      })
    }
  },

  // 低版本的获取用户信息
  getUserInfo(e) {
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true
    })
  },

  // 获取用户信息
  getUserProfile() {
    wx.getUserProfile({
      desc: '“获取昵称、头像、地区及性别',
      success: (res) => {
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
        // 将用户信息保存到本地中
        wx.setStorageSync('userInfo', this.data.userInfo)
      }
    })
  },

  // 获取客服微信
  getServiceWx() {
    // 将data中的数据复制到剪切板
    wx.setClipboardData({
      data: 'gh-2508',
      success: () => {
        wx.showToast({
          title: '复制微信成功！',
        })
      }
    })
  },

  // 跳转到关于我们
  toAboutUs() {
    wx.navigateTo({
      url: '../aboutUs/aboutUs',
    })
  },

  // 点击"申请接单"
  toApplyOrder() {
    const userInfo = wx.getStorageSync('userInfo')
    // 如果用户没有授权登录
    if (!userInfo) {
      wx.showToast({
        title: '请先授权登录',
        icon: "none",
      })
      return
    }
    const {
      applicationStatu
    } = this.data
    switch (applicationStatu) {
      case "success":
        wx.showModal({
          title: '提示',
          content: '您已经是接单员了，请勿重复申请！',
          showCancel: false
        })
        break
      case "fail":
        wx.showModal({
          title: "提示",
          content: "您之前提交的申请未通过审核，您可以继续申请，如有疑问请联系管理员：19120735044",
          success: (res) => {
            // 获取用户的选择，确定则confirm为true,取消则为false
            const {
              confirm
            } = res
            if (confirm) {
              wx.navigateTo({
                url: '../applyForOrders/applyForOrders',
              })
            }
          }
        })
        break
      case "loading":
        wx.showModal({
          title: '提示',
          content: '您之前申请的内容正在审核中，请耐心等待！如加急审核请添加管理员微信：19120735044',
          showCancel: false
        })
        break
      default:
        wx.navigateTo({
          url: '../applyForOrders/applyForOrders',
        })
        break;
    }
  },

  // 跳转到审核接单页面
  toCheck() {
    wx.navigateTo({
      url: '../check/check',
    })
  },

  // 获取用户的申请状态
  getStatu() {
    let applicationStatu = "null"
    db.collection('applyOrderInfo').where({
      _openid: wx.getStorageSync('openId')
    }).get({
      success: (res) => {
        const {
          data
        } = res
        for (let i = 0; i < data.length; i++) {
          const {
            state
          } = data[i]
          if (state === "通过") {
            applicationStatu = "success"
            break
          } else if (state === "待审核") {
            applicationStatu = "loading"
            break
          } else if (state === "不通过") {
            applicationStatu = "fail"
          }
        }
        this.setData({
          applicationStatu
        })
      }
    })
  },

  // 判断当前用户是否是管理员
  judgeIsManager() {
    db.collection('managers').where({
      managerId: wx.getStorageSync('openId')
    }).get({
      success: (res) => {
        // 如果又返回结果，则说明该用户是管理员
        if (res.data.length) {
          this.setData({
            isManager: true
          })
        }
      }
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    if (wx.getUserProfile) {
      this.setData({
        canIUseGetUserProfile: true
      })
    }
    // 获取本地中的用户信息
    const info = wx.getStorageSync('userInfo');
    if (info) {
      this.setData({
        userInfo: info,
        hasUserInfo: true,
      })
    }
    // 判断当前用户是否是管理员
    this.judgeIsManager()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.getStatu()
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {},

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})